package com.common.util;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Random;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.ArrayUtils;



/**
 * 公共工具类
 * @author 李建
 */
public class PublicUtil {
	
	/**
	 * @param index 截取字符串下标
	 * @param str 字符串
	 * @param endStr 添加结尾字符串 例如"..."
	 * @return
	 */
	public static String subStr(String str, int index, String endStr){
		if(str == null || "".equals(str)){
			return "";
		}
		if(str.length()<=index){
			return str;
		}
		
		return str.substring(0,index)+endStr;
	}
	
	/**
	 * 去尾部字符
	 * @param param
	 * @param endWithStr
	 * @return
	 */
	public static String delEndString(String param,String endWithStr){
		
		if("".equals(getStrValue(param, ""))){
			return param;
		}
		if (param.endsWith(endWithStr)) {
			param = param.substring(0, param.length() - endWithStr.length());
		}
		return param;
	}
	
	/**
	 * 去头部字符
	 * @param param
	 * @param endWithStr
	 * @return
	 */
	public static String delStartString(String param,String startWithStr){
		
		if("".equals(getStrValue(param, ""))){
			return param;
		}
		if (param.startsWith(startWithStr)) {
			param = param.substring(startWithStr.length(), param.length());
		}
		return param;
	}
	
	/**
	 * 转string类型
	 * @param param
	 * @param value
	 * @return
	 */
	public static String getStrValue(Object param,String value){
		
		if(param == null){
			return value;
		}
		if("".equals(param.toString()) || "null".equals(param.toString())){
			return value;
		}
		return param.toString().trim();
	}
	
	/**
	 * 转double类型
	 * @param param
	 * @param value
	 * @return
	 */
	public static Double getDoubleValue(Object param,Double value){
		
		if(param == null){
			return value;
		}
		if("".equals(param.toString()) || "null".equals(param.toString())){
			return value;
		}
		return Double.parseDouble(param.toString());
	}
	
	/**
	 * 格式化带小数点的数字
	 * @param param
	 * @param format
	 * @return
	 */
	public static String decimalFormat(double param,String format){
		DecimalFormat df = new DecimalFormat(format);
		return df.format(param);
	}
	
	/**
	 * 转int类型
	 * @param param
	 * @param value
	 * @return
	 */
	public static int getIntValue(Object param,int value){
		
		if(param == null){
			return value;
		}
		if("".equals(param.toString()) || "null".equals(param.toString())){
			return value;
		}
		if(param.toString().contains(".")){
			return (int)Double.parseDouble(param.toString());
		}
		return Integer.parseInt(param.toString());
	}
	
	/**
	 * 去空格
	 * @param str
	 * @return
	 */
	public static String deleteIt(String str) {       
		if(str == null || "".equals(str)){
			return "";
		}
		str = str.trim();
		str = str.replaceAll(" ", "");   
		return str;            
	}
	
	/**
	 * 按照自定义格式字符串转日期
	 * @author 李建
	 * @param value
	 * @param format
	 * @return
	 */
	public static Date str2FormatDate(String value, String format){
		if(value == null || value.equals("")){
			return null;
		}
		
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		try {
			return sdf.parse(value);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
		
	}
	
	/**
	 * 将类似于"0531,0532,0533"这样的以逗号等分隔符连接的字符串转换为字符数组
	 * @author 李建
	 * @param str
	 * @param delimitor	如果为空或""，则默认为逗号
	 * @return
	 */
	public static String[] str2Array(String str, String delimitor){
		if(null == str || str.equals(""))
		{
			return null;
		}
		
		if(null == delimitor || delimitor.equals(""))
		{
			delimitor = ",";
		}
		
		return str.split(delimitor);	
	}
	
	/**
	 * 按照自定义格式日期转字符串
	 * @param date
	 * @param format
	 * @param value
	 * @return
	 */
	public static String date2formatStr(Date date,String format,String value){
		if(date == null){
			return value;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		return sdf.format(date);
	}
	
	/**
	 * 按照自定义格式日期转字符串,尾部可追加字符
	 * @param date
	 * @param format
	 * @param appendStr
	 * @param value
	 * @return
	 */
	public static String date2formatStr(Date date,String format,String appendStr,String value){
		if(date == null){
			return value;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		String str = sdf.format(date) + appendStr;
		return str;
	}
	
	/**
	 * 按照自定义格式日期转字符串
	 * @param date
	 * @param format
	 * @param value
	 * @return
	 */
	public static Date str2formatDate(Object date,String format){
		
		String value = getStrValue(date, "");
		if("".equals(value)){
			return null;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		try {
			return sdf.parse(value);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	public static Date DateFormat(Date date,String format){
		if(date == null){
			return null;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		String str = sdf.format(date); 
		try {
			return sdf.parse(str);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	/**
	 * 验证取值范围
	 * @param param
	 * @param bigValue
	 * @param smallValue
	 * @return
	 */
	public static boolean checkNumberScope(Object param,Object bigValue,Object smallValue) {
		double value = getDoubleValue(param, 0.0);
		double big = getDoubleValue(bigValue, 0.0);
		double small = getDoubleValue(smallValue, 0.0);
		if(value <= big && value >= small){
			return true;
		}
		return false;
	}
	
	/**
	 * 获取某日期前，后若干天的日期
	 * @param format 日期格式
	 * @param date 某一日期
	 * @param index 前或者后的天数
	 * @return
	 */
	public static String getOtherDate(String format,Date date,int index){
		
		if(date == null){
			return null;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		Calendar c=Calendar.getInstance();
		c.setTime(date);
		c.add(Calendar.DATE,index);
		return sdf.format(c.getTime());
	}
	
	/**
	 * 获取时间戳
	 * @param format
	 * @param date
	 * @param index
	 * @return
	 */
	public static String getMillis(String user_time) {

		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date d;
		try {
			d = sdf.parse(user_time);
			long l = d.getTime();
			str = String.valueOf(l);

		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return str;
	}
	
	/**
	 * 获取某日期前，后若干天的日期
	 * @param format 日期格式
	 * @param date 某一日期
	 * @param index 前或者后的天数
	 * @return
	 */
	public static Date getOtherDate(Date date,int index){
		
		if(date == null){
			return null;
		}
		Calendar c=Calendar.getInstance();
		c.setTime(date);
		c.add(Calendar.DATE,index);
		return c.getTime();
	}
	
	/**
	 * 获取某日期前，后若干月的日期
	 * @param format 日期格式
	 * @param date 某一日期
	 * @param index 前或者后的月数
	 * @return
	 */
	public static String getOtherMonth(String format,Date date,int index){
		
		if(date == null){
			return null;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		Calendar c=Calendar.getInstance();
		c.setTime(date);
		c.add(Calendar.MONTH,index);
		return sdf.format(c.getTime());
	}
	
	/**
	 * 获取某日期前，后若干月的日期
	 * @param format 日期格式
	 * @param date 某一日期
	 * @param index 前或者后的月数
	 * @return
	 */
	public static Date getOtherMonth(Date date,int index){
		
		if(date == null){
			return null;
		}
		Calendar c=Calendar.getInstance();
		c.setTime(date);
		c.add(Calendar.MONTH, index);
		return c.getTime();
	}
	
	/**判断是否体验到期
	 * @param date 当前日期
	 * @param beforeDate 前一个日期
	 * @param afterDate 后一个日期
	 * @return
	 */
	public static boolean checkDate(Date date,Date beforeDate,Date afterDate){
		
		boolean flag = false;
		if(beforeDate == null && date == null && afterDate == null){
			return flag;
		}
		//当前日期大于前一个日期并且小于后一个日期即当前日期在前后两个日期范围内
		if(date.after(beforeDate) && date.before(afterDate)){
			flag = true;
		}
		return flag;
	}
	
	/**
	 * @param date
	 * @param compareDate
	 * @return
	 */
	public static boolean checkDate(Date date,Date compareDate){
		
		boolean flag = false;
		if(compareDate == null && date == null ){
			return flag;
		}
		//当前日期大于比较日期
		if(date.after(compareDate)){
			flag = true;
		}
		return flag;
	}
	
	
	/**
	 * 读取excel
	 * @param fileName 文件名
	 * @param rowNum 从第几行开始读
	 * @return 
	 */
	public static List<?> readExcel(String fileName,int rowNum){
		
		// 创建一个list用来存读取的内容
//		List list = new ArrayList();
//		File excelFile = null;
//		Workbook rwb = null;
//		Cell cell = null;
//		InputStream stream = null;
//		
//		try {
//			excelFile = new File(fileName);
//			// 创建输入流
//			stream = new FileInputStream(excelFile);
//			// 获取Excel文件对象
//			rwb = Workbook.getWorkbook(stream);
//			
//		} catch (Exception e) {
//			e.printStackTrace();
//			rwb.close();
//			return list;
//		}
//		// 获取文件的指定工作表默认的第一个
//		int sheetCount = rwb.getNumberOfSheets();
//		for(int x =0 ; x<sheetCount ; x++){
//			Sheet sheet = rwb.getSheet(x);
//			// 行数(表头的目录不需要，从1开始)
//			for (int i = rowNum; i < sheet.getRows(); i++) {
//				// 创建一个数组 用来存储每一列的值
//				List columnsList = new ArrayList();
//				// 列数
//				for (int j = 0; j < sheet.getColumns(); j++) {
//					// 获取第i行，第j列的值
//					cell = sheet.getCell(j, i);
//					columnsList.add(cell.getContents());
//				}
//				list.add(columnsList);
//			}
//		}
//		rwb.close();
//		return list;
		
		return null;

	}
	
	/**
	 * 数据写入excel
	 * @param fileName 文件名
	 * @param path 存放文件路径
	 * @param columnList 列名列表
	 * @param dateList 数据列表
	 * @throws Exception 
	 */
	public static void writeExcel(String fileName,String path,List<?> columnList,List<?> dateList){
		
		/*String fileName = "分类用户统计信息";
		String excelpath=Contants.UPLOAD_PROJECT_PATH + "businessCateStat"+getAttaBatch()+".xls";
		//检查文件是否存在
		if(!FileUtil.checkFile(excelpath)){
			System.out.println("===============================================");
			System.out.println("下载的文件不存在");
			System.out.println("===============================================");
			return;
		}
		//删除已经不再使用的文件
		FileUtil.DeleteFolder(Contants.UPLOAD_PROJECT_PATH);*/
		
//		OutputStream os = null;
//		WritableWorkbook workbook = null;
//		WritableSheet sheet = null;
//		
//		try {
//			
//			os = new FileOutputStream(path);
//			workbook = Workbook.createWorkbook(os);
//			sheet = workbook.createSheet(fileName, 0);
//			int column=0;//控制列
//			for(int i=0;i<columnList.size();i++){
//				int length = 15;
//				try {
//					Object rowName = (Object)columnList.get(i);
//					if(rowName instanceof String[]){
//						String[] arrayRowName = (String[])rowName;
//						length = Integer.parseInt(arrayRowName[1]);
//					}
//				} catch (Exception e) {
//					// TODO: handle exception
//				}
//				sheet.setColumnView(column++, length); 
//			}
//		
//			// 设置行高
//			sheet.setRowView( 0 , 600 , false);
//			sheet.setRowView( 1 , 600 , false);
//			// 表格标题  字体样式，20px，加粗
//			WritableFont tableTitleStyle = new WritableFont(WritableFont.ARIAL, 
//					20,WritableFont.BOLD);
//			// 列表表头 样式
//			WritableFont tableTopStyle = new WritableFont(WritableFont.ARIAL,
//					 12,WritableFont.BOLD);
//			// 列表内容 样式
//			WritableFont contentStyle = new WritableFont(WritableFont.ARIAL,
//					 12,WritableFont.NO_BOLD);
//			// 用于标题
//			WritableCellFormat tableTitle = new WritableCellFormat(tableTitleStyle);
//			tableTitle.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
//			tableTitle.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐
//			tableTitle.setAlignment(Alignment.CENTRE);
//			tableTitle.setWrap(true); // 是否换行
//			// 表头 设置
//			WritableCellFormat tableTop = new WritableCellFormat(tableTopStyle);
//			tableTop.setBorder(Border.ALL,BorderLineStyle.THIN); // 线条
//			tableTop.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐
//			tableTop.setAlignment(Alignment.CENTRE); // 左右居中
//			tableTop.setBackground(Colour.GRAY_25);  //样式设置灰色
//			tableTop.setWrap( true ); // 是否换行
//			// 用于表内 循环数据
//			WritableCellFormat content = new WritableCellFormat(contentStyle);
//			content.setBorder(Border.ALL,BorderLineStyle.THIN); // 线条
//			content.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐
//			content.setAlignment(Alignment.CENTRE); // 水平对齐
//			content.setWrap( true ); // 是否换行
//			// 合并单元格,注意mergeCells(col0,row0,col1,row1)--列从0开始,col1为你要合并到第几列,行也一样
//			sheet.mergeCells( 0 , 0 , 19, 0 );
//			//客户名称	客户地址	企业规模	联系人姓名	联系人电话	所属行业 
//			sheet.addCell(new Label(0, 0, fileName, tableTitle));
//			column=0;//控制列
//			
//			for(int i=0;i<columnList.size();i++){
//				
//				String cont = String.valueOf(columnList.get(i));
//				try {
//					Object rowName = (Object)columnList.get(i);
//					if(rowName instanceof String[]){
//						String[] arrayRowName = (String[])rowName;
//						cont = arrayRowName[0];
//					}
//				} catch (Exception e) {
//					// TODO: handle exception
//				}
//				sheet.addCell(new Label(column++, 1, cont, tableTop));
//			}
//			
//			int row=2;//控制行
//			if(dateList != null && !dateList.isEmpty()){
//				for(int i=0;i<dateList.size();i++){
//					column=0;
//					List<String> list = (List)dateList.get(i);
//					for(String value : list){
//						sheet.addCell(new Label(column++, row, getStrValue(value, ""), content));
//					}
//					row++;
//				}
//			}
//			workbook.write();
//			workbook.close();
//			os.close();
//			download(fileName, path);
//		} catch (Exception e) {
//			// TODO: handle exception
//			e.printStackTrace();
//		}
	}
	
	public static void download(String fileNameIn, String path){
		
//		try {
//			String fileName = fileNameIn + ".xls";
//			String contentType = "application/x-download";
//			//FacesContext ctx = FacesContext.getCurrentInstance();
//			
//			HttpServletResponse response = ServletActionContext.getResponse();
//			response.setContentType(contentType);
//			response.setHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("gb2312"), "ISO8859-1"));
//
//			ServletOutputStream out = response.getOutputStream();
//
//			byte[] bytes = new byte[0xffff];
//			InputStream is = new FileInputStream(new File(path));
//			int b = 0;
//			while ((b = is.read(bytes, 0, 0xffff)) > 0) {
//				out.write(bytes, 0, b);
//			}
//			is.close();
//			out.flush();
//		} catch (Exception e) {
//			// TODO: handle exception
//			e.printStackTrace();
//		}
		
	}
	
	/**
	 * 将bean中的属性值转换到list中
	 * @param obj
	 * @param startMethod
	 * @return
	 */
	public static List<Object> beanValues2ArrayList(Object obj){
		
		List<Object> list = new ArrayList<Object>(); 
		Method[] methods  = obj.getClass().getMethods();
		
		for (Method method : methods) {
			
			String methodName = method.getName();
			
			if (methodName.startsWith("get") && !methodName.startsWith("getClass")) {
				try {
					Object value = method.invoke(obj);
					if(!"".equals(getStrValue(value, ""))){
						list.add(value);
					}
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
			}
		}
		
		return list;
	}
	
	/**
	 * 将bean中的属性值转换到list中
	 * @param obj
	 * @param startMethod
	 * @return
	 */
	public static List<Object> beanValues2ArrayList(Object obj,String methodStartWith){
		
		List<Object> list = new ArrayList<Object>(); 
		Method[] methods  = obj.getClass().getMethods();
		
		for (Method method : methods) {
			
			String methodName = method.getName();
			
			if (methodName.startsWith(methodStartWith) && !methodName.startsWith("getClass")) {
				try {
					Object value = method.invoke(obj);
					if(!"".equals(getStrValue(value, ""))){
						list.add(value);
					}
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
			}
		}
		
		return list;
	}
	
	/**
	 * 计算时间差（日，时，分，秒）
	 * @param smallStr 小时间点
	 * @param bigStr 大时间点
	 * @return Map
	 */
	public static Map<String, Long> getDistanceTime(String smallStr, String bigStr) {  
		
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
		Map<String, Long> map = new HashMap<String, Long>();
		long diff = 0l;  
		
        try {  
            diff = df.parse(bigStr).getTime() - df.parse(smallStr).getTime();  
            System.out.println(diff);
        } catch (ParseException e) {  
            e.printStackTrace();  
            return map;
        } 
        
        map.put("day", diff / (24 * 60 * 60 * 1000));
        map.put("hour", diff / (60 * 60 * 1000));
        map.put("min", diff / (60 * 1000)+1);
        map.put("sec", diff / 1000);
        
        return map;  
    }  
	
   /**
     * 计算时间差（日，时，分，秒）
	 * @param smallDate 小时间点
	 * @param bigDate 大时间点
	 * @return Map
	 */
	public static Map<String, Object> getDistanceTime(Date smallDate, Date bigDate) { 
	   
		Map<String, Object> map = new HashMap<String, Object>();
		long diff = 0l;  
		
		try {
			diff = bigDate.getTime() - smallDate.getTime();
		} catch (Exception e) {
			// TODO: handle exception
			return map;  
		}
        map.put("day", diff / (24 * 60 * 60 * 1000));
        map.put("hour", diff / (60 * 60 * 1000));
        map.put("min", diff / (60 * 1000)+1);
        map.put("sec", diff / 1000);
        
        return map;    
    }  
	
	/**
	 * 获取城市名称
	 * @param cityCode
	 * @return
	 */
	public static String getCityName(String cityCode) {
		
		String returnStr = "";
		if(cityCode == null || "".equals(cityCode)){
			return returnStr;
		}
		if(cityCode.length() == 3){
			cityCode = "0"+cityCode;
		}
		
		if ("0531".equals(cityCode))
			returnStr = "济南";
		if ("0532".equals(cityCode))
			returnStr = "青岛";
		if ("0535".equals(cityCode))
			returnStr = "烟台";
		if ("0631".equals(cityCode))
			returnStr = "威海";
		if ("0533".equals(cityCode))
			returnStr = "淄博";
		if ("0543".equals(cityCode))
			returnStr = "滨州";
		if ("0546".equals(cityCode))
			returnStr = "东营";
		if ("0534".equals(cityCode))
			returnStr = "德州";
		if ("0530".equals(cityCode))
			returnStr = "菏泽";
		if ("0632".equals(cityCode))
			returnStr = "枣庄";
		if ("0537".equals(cityCode))
			returnStr = "济宁";
		if ("0634".equals(cityCode))
			returnStr = "莱芜";
		if ("0633".equals(cityCode))
			returnStr = "日照";
		if ("0539".equals(cityCode))
			returnStr = "临沂";
		if ("0536".equals(cityCode))
			returnStr = "潍坊";
		if ("0635".equals(cityCode))
			returnStr = "聊城";
		if ("0538".equals(cityCode))
			returnStr = "泰安";
		if ("0017".equals(cityCode) || "2".equals(cityCode))
			returnStr = "山东省";
		return returnStr;
	}
	
	public static String getCityAreaCode(Object cityName) {
		
		String returnStr = "";
		if("".equals(getStrValue(cityName, ""))){
			return returnStr;
		}
		
		if ("济南".equals(cityName))
			returnStr = "531";
		if ("青岛".equals(cityName))
			returnStr = "532";
		if ("烟台".equals(cityName))
			returnStr = "535";
		if ("威海".equals(cityName))
			returnStr = "631";
		if ("淄博".equals(cityName))
			returnStr = "533";
		if ("滨州".equals(cityName))
			returnStr = "543";
		if ("东营".equals(cityName))
			returnStr = "546";
		if ("德州".equals(cityName))
			returnStr = "534";
		if ("菏泽".equals(cityName))
			returnStr = "530";
		if ("枣庄".equals(cityName))
			returnStr = "632";
		if ("济宁".equals(cityName))
			returnStr = "537";
		if ("莱芜".equals(cityName))
			returnStr = "634";
		if ("日照".equals(cityName))
			returnStr = "633";
		if ("临沂".equals(cityName))
			returnStr = "539";
		if ("潍坊".equals(cityName))
			returnStr = "536";
		if ("聊城".equals(cityName))
			returnStr = "635";
		if ("泰安".equals(cityName))
			returnStr = "538";
		return returnStr;
	}
	
	/**
	 * 获取当前日期是星期几
	 * @param date
	 * @return
	 */
	public static String getWeekOfDate(Date date) {

		if (date == null) {
			return "";
		}
		SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
		return dateFm.format(date);
	}
	
	/**
	 * 获取当前是第几季度
	 * @param date
	 * @return
	 */
	public static String getQuarter(Date date){
		if (date == null) {
			return "";
		}
		int month = Integer.parseInt(PublicUtil.date2formatStr(new Date(),"MM",""));
		return String.valueOf(month/4+1);
	} 
	
	public static String array2String(String[] array,String splitStr,String returnStr){
		
		String str = "";
		if(array == null || array.length <1){
			return returnStr;
		}
		
		for(int i = 0; i<array.length;i++){
			str +=  array[i]+splitStr;
		}
		return delEndString(str, splitStr);
	}
	
	public static boolean getStruts2UploadFile(File file,String path,String fileName){
		
//		if (file != null) {
//			
//            File savefile = new File(new File(path), fileName);
//            if (!savefile.getParentFile().exists())
//                savefile.getParentFile().mkdirs();
//            try {
//				FileUtils.copyFile(file, savefile);
//				return true;
//			} catch (IOException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//        }
		return false;
	}
	
//	public static String getDirByFileFormat(String fileFormat){
//		
//		if (Contants.FORMAT_MUSIC.toLowerCase().contains(fileFormat.toLowerCase())) {
//			
//			return Contants.DIR_MUSIC;
//			
//		} else if (Contants.FORMAT_PIC.toLowerCase().contains(fileFormat.toLowerCase())) {
//			
//			return Contants.DIR_PIC;
//			
//		} else if (Contants.FORMAT_VEDIO.toLowerCase().contains(fileFormat.toLowerCase())) {
//			
//			return Contants.DIR_VEDIO;
//			
//		} else {
//			
//			return Contants.DIR_OTHER;
//		}
//	}
	
	/**
	 * 验证文件格式
	 * @param fileName 文件名
	 * @param type 字典分类
	 * @return
	 */
	public static boolean checkUpLoadFileType(String fileName,String category){
		
		boolean f = false;
//		if("".equals(CommonAdapter.getStrValue(fileName, ""))){
//			return f;
//		}
//		
//		String fileFormat = fileName.substring(fileName.indexOf(".")+1,fileName.length());
//		if (Contants.FORMAT_MUSIC.toLowerCase().contains(fileFormat.toLowerCase())
//				&& Contants.MUSIC_CATEGORY.equals(category)) {
//			
//			f = true;
//		} else if (Contants.FORMAT_VEDIO.toLowerCase().contains(fileFormat.toLowerCase())
//				&& Contants.VIDEO_CATEGORY.equals(category)) {
//			
//			f = true;
//		}
		return f;
	}
	
//	public static List<CityInfo> getCityList(int type,int isRole){
//		
//		
//		Map app = ActionContext.getContext().getApplication();		
//		
//		
//		List<CityInfo> list = new ArrayList<CityInfo>();
//		
//		if(isRole == 1){
//			HttpSession session=ServletActionContext.getRequest().getSession();
//			RoleInfo ri = (RoleInfo)session.getAttribute("role");
//			if(ri == null){
//				return list;
//			}else if( !"0017".equals(ri.getArea_code())){
//				CityInfo info = new CityInfo();
//				info.setCityCode(ri.getArea_code());
//				info.setCityName(ri.getArea_name());
//				list.add(info);
//				return list;
//			}
//		}
//		
//		if(type ==1 || type ==3){
//			CityInfo info = new CityInfo();
//			info.setCityCode("");
//			info.setCityName("请选择");
//			list.add(info);
//		}
//		
//		List<AreaInfo> tmpList = (ArrayList)app.get("list_area");
//		for(AreaInfo tmp : tmpList){
//			CityInfo info = new CityInfo();
//			if(type == 1 && "0017".equals(tmp.getArea_code())){
//				continue;
//			}else if(type == 0 && "0017".equals(tmp.getArea_code())){
//				continue;
//			}
//			info.setCityCode(tmp.getArea_code());
//			info.setCityName(tmp.getArea_name());
//			list.add(info);
//		}
//		
//		
//		return list;
//		
//	}
	
	//获得公司列表
//	public static List<CompanyInfo> getCompanyList(int type){
//		
//		
//		Map app = ActionContext.getContext().getApplication();		
//		List<CompanyInfo> list = new ArrayList<CompanyInfo>();
//		
//		if(type ==1 || type ==3){
//			CompanyInfo info = new CompanyInfo();
//			info.setId("");
//			info.setCp_name("个人");
//			list.add(info);
//		}
//		
//		if(type == 4)
//		{
//			CompanyInfo info = new CompanyInfo();
//			info.setId("");
//			info.setCp_name("全部");
//			list.add(info);
//		}
//		
//		list.addAll((List<CompanyInfo>)app.get("list_company"));
//		
//		return list;
//		
//	}
	
//	public static List<TypeInfo> adaptAuditList(String auditState){
//		
//		Map app = ActionContext.getContext().getApplication();
//		List<DictItem> tmpList = (ArrayList)app.get("list_di");
//		List<TypeInfo> typeList = new ArrayList<TypeInfo>();
//		
//		for(DictItem di : tmpList){
//			if(Contants.AUDIT_CATEGORY.equals(di.getCategoryid())){
//				//当前状态是未审核。审核列表显示驳回和审核通过
//				if(Contants.AUDIT_NOT_DO.equals(auditState) && 
//						(Contants.AUDIT_THROUGH.equals(di.getId()) || Contants.AUDIT_NOT_PASS.equals(di.getId()))){
//					TypeInfo info = new TypeInfo();
//					info.setId(di.getId());
//					info.setTypename(di.getTypename());
//					typeList.add(info);
//					//当前状态是审核通过，显示撤回
//				}else if(Contants.AUDIT_THROUGH.equals(auditState) && Contants.AUDIT_RETRACT.equals(di.getId())){
//					TypeInfo info = new TypeInfo();
//					info.setId(di.getId());
//					info.setTypename(di.getTypename());
//					typeList.add(info);
//					//当前状态是驳回或者撤回，不显示审核列表
//				}else if(Contants.AUDIT_NOT_PASS.equals(auditState) || Contants.AUDIT_RETRACT.equals(auditState)){
//					break;
//				}
//			}
//		}
//		return typeList;
//	}
//	
//	public static List<TypeInfo> getTypeList(String CategoryId,int type){
//		
//		Map app = ActionContext.getContext().getApplication();	
//		List<TypeInfo> typeList = new ArrayList<TypeInfo>();
//		
//		if(type == 1){
//			TypeInfo info = new TypeInfo();
//			info.setId("");
//			info.setTypename("请选择");
//			typeList.add(info);
//		}
//		
//		List<DictItem> tmpList = (ArrayList)app.get("list_di");
//		
//		if("".equals(CategoryId) || CategoryId == null){
//			for(DictItem di : tmpList){
//				TypeInfo info = new TypeInfo();
//				info.setId(di.getId());
//				info.setTypename(di.getTypename());
//				typeList.add(info);
//			}
//		}else{
//			for(DictItem di : tmpList){
//				if(CategoryId.equals(di.getCategoryid())){
//					TypeInfo info = new TypeInfo();
//					info.setId(di.getId());
//					info.setTypename(di.getTypename());
//					typeList.add(info);
//				}
//			}
//		}
//		
//		return typeList;
//	}
	
	/**
	 * 获得内容服务类型列表（新闻、搞笑 etc）
	 */
//	public static List<TypeInfo> getContentTypeList(int type){
//		
//		List<String> categoryList = new ArrayList();
//		
//		categoryList.add("20");	//新闻
//		categoryList.add("22");	//音乐
//		categoryList.add("23");	//搞笑
//		categoryList.add("25");	//广告
//		categoryList.add("28");	//视频
//		
//		Map app = ActionContext.getContext().getApplication();
//		List<DictItem> tmpList = (ArrayList)app.get("list_di");
//		
//		List<TypeInfo> typeList = new ArrayList<TypeInfo>();
//		
//		if(type == 1)
//		{
//			TypeInfo info = new TypeInfo();
//			info.setId("");
//			info.setTypename("请选择");
//			typeList.add(info);
//		}
//		
//		for(String s : categoryList)
//		{
//			for(DictItem di: tmpList)
//			{
//				if(di.getId().equals(s))
//				{
//					TypeInfo info = new TypeInfo();
//					info.setId(di.getId());
//					info.setTypename(di.getTypename());
//					typeList.add(info);
//				}
//			}
//		}
//		
//		TypeInfo info = new TypeInfo();
//		info.setId("30");
//		info.setTypename("其他");
//		typeList.add(info);
//		
//		return typeList;
//	}
	
	/**
	 * 获取类型数据方法，CategoryId必须有值，否则返回null
	 * @param CategoryId
	 * @return
	 */
//	public static List<TypeInfo> getAppTypeList(String CategoryId){
//		
//		Map app = ActionContext.getContext().getApplication();	
//		List<TypeInfo> typeList = new ArrayList<TypeInfo>();
//		
//		List<DictItem> tmpList = (ArrayList)app.get("list_di");
//		
//		if("".equals(CategoryId) || CategoryId == null){
//			return null;
//		}else{
//			for(DictItem di : tmpList){
//				if(CategoryId.equals(di.getCategoryid()) && di.getIsrelease().equals("1")){
//					TypeInfo info = new TypeInfo();
//					info.setId(di.getId());
//					info.setTypename(di.getTypename());
//					typeList.add(info);
//				}
//			}
//		}
//		
//		return typeList;
//	}
	
	/**
	 * 删除文件
	 * @param sPath
	 * @return
	 */
	public static boolean deleteFile(String path) {  
		
	    boolean flag = false;  
	    File file = new File(path);  
	    // 判断目录或文件是否存在  
	    if (!file.exists()) {  // 不存在返回 false  
	        return flag;  
	    } else {  
	        // 判断是否为文件  
	        if (file.isFile()) {  // 为文件时调用删除文件方法  
	        	 file.delete(); 
	        	 flag = true;  
	        } 
	    }
	    return flag;
	}
	
//	public static Map getUploadFileInfo(String fileName){
//		
//		HttpServletRequest request = ServletActionContext.getRequest();
//		String rootPath = request.getSession().getServletContext().getRealPath("//")+"\\";
//		//rootPath = rootPath.substring(0,rootPath.indexOf("\\")) + rootPath.substring(rootPath.lastIndexOf("\\"),rootPath.length())+"\\";
//		
//		String rootDir = CommonAdapter.getDirByFileFormat(fileName.substring(fileName.indexOf(".")+1,fileName.length()));
//		String subDir = CommonAdapter.date2formatStr(new Date(), "yyyyMMdd", "");
//		
//		String newFileName = CommonAdapter.date2formatStr(new Date(), "yyyyMMddHHmmssSSS", "") 
//				+ fileName.substring(fileName.indexOf("."),fileName.length());
//		String path = rootPath + rootDir + subDir;
//		String atta_path =  rootDir + subDir + "\\" +newFileName;
//		String atta_path_url =  atta_path.replace("\\", "/");
//		
//		Map<String,String> map = new HashMap<String, String>();
//		map.put("path", path);
//		map.put("newFileName", newFileName);
//		map.put("atta_path", atta_path);
//		map.put("atta_path_url", atta_path_url);
//		
//		return map;
//	}
	
	/**
	 * 将以逗号分隔的id字符串转换为String类型的list
	 * @author 李建
	 * @param ids
	 * @return list<String>
	 */
	public static List<String> idsStrToStringList(String ids)
	{
		List<String> list = new ArrayList<String>();
		
		String[] s = ids.split(",");
		
		for(String id: s)
		{
			list.add(id);
		}
		
		return list;
		
	}
	
	/**
	 * 将以seperator为分隔符分隔的id字符串转换为String类型的list
	 * @author 李建
	 * @param ids
	 * @return list<String>
	 */
	public static List<String> idsStrToStringList(String ids, String seperator)
	{
		List<String> list = new ArrayList<String>();
		
		String[] s = ids.split(seperator);
		
		for(String id: s)
		{
			list.add(id);
		}
		
		return list;
		
	}
	
//	public static String getCityNamesByCodes(List<CityInfo> list,String areaCodes){
//		
//		String areaNames = "";
//		String[] areaCodeArray = CommonAdapter.getStrValue(areaCodes, "").split(",");
//		
//		for(int i = 0 ; i < areaCodeArray.length;i++){
//			for(CityInfo info : list){
//				if(areaCodeArray[i].equals(info.getCityCode())){
//					areaNames += info.getCityName() + ",";
//				}else{
//					continue;
//				}
//			}
//		}
//		return CommonAdapter.delEndString(areaNames, ",");
//	}
	
//	public static String getTypeNamesByIds(List<TypeInfo> list,String ids){
//		
//		String typeNames = "";
//		String[] idsArray = CommonAdapter.getStrValue(ids, "").split(",");
//		
//		for(int i = 0 ; i < idsArray.length;i++){
//			for(TypeInfo info : list){
//				if(idsArray[i].equals(info.getId())){
//					typeNames += info.getTypename() + ",";
//				}else{
//					continue;
//				}
//			}
//		}
//		return CommonAdapter.delEndString(typeNames, ",");
//	}
	
//	public static String getRoleAreaCode(RoleInfo ri){
//		
//		String area_code = "";
//		if("".equals(CommonAdapter.getStrValue(ri.getArea_code(), ""))){
//			area_code = "null";
//		}else if("0017".equals(ri.getArea_code())){
//			area_code = null;
//		}else{
//			area_code = ri.getArea_code();
//		}
//		return area_code;
//	}
	
	public static String getPicBasePath(HttpServletRequest request){
		
		String path = request.getContextPath();
		String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
		
		/*String path = request.getContextPath().substring(1,request.getContextPath().length());
		String basePath = request.getScheme()+":\\"+request.getServerName()+":"+request.getServerPort()+"\\"+path+"\\";*/
		return basePath;
	}
	
	/**
	 * 获得UUID号，已去除中间的-
	 * @author 李建
	 * @return uuid
	 */
	public static String getUUID()
	{
		UUID uuid = UUID.randomUUID();
        String str = uuid.toString();
        str = str.toLowerCase();
        
		return str.replace("-", "");
	}
	
	/**
	 * 根据条件所有用户的id号
	 * @author 李建
	 * @return List<Integer>
	 */
//	public static List<Integer> getUserIdListByCondition(HashMap<Object,Object> p, MngUserService mngUserService)
//	{
//		return mngUserService.getUserIdListByConditions(p);
//	}
	
	/** 
	   * 替换字符串 
	   * @author 李建
	   * @param from String 原始字符串 
	   * @param to String 目标字符串 
	   * @param source String 母字符串 
	   * @return String 替换后的字符串 
	   */  
	public static String replaceStr(String from, String to, String source) {  
	    if (source == null || from == null || to == null)  
	      return null;  
	    StringBuffer bf = new StringBuffer("");  
	    int index = -1;  
	    while ((index = source.indexOf(from)) != -1) {  
	      bf.append(source.substring(0, index) + to);  
	      source = source.substring(index + from.length());  
	      index = source.indexOf(from);  
	    }  
	    bf.append(source);  
	    return bf.toString();  
	} 
	
	/**
	 * 获取验证码
	 * @author 李建
	 * @return List<Integer>
	 */
	public static String getSafeCode()
	{
		int count_YZM = 4;
		char[] ch = "0123456789".toCharArray(); // 随即产生的字符串 不包括 i l(小写L) o（小写O） 1（数字1）0(数字0)   
		int length = ch.length; // 随即字符串的长度   
        String sRand = ""; // 保存随即产生的字符串   
        Random random = new Random();   
        for (int i = 0; i < count_YZM; i++) 
        {    
  
            // 随即生成0-9的数字   
            String rand = new Character(ch[random.nextInt(length)]).toString();   
            sRand += rand;     
        }   
        
        return sRand;
	}
	
	/**
	 * 得到转码后的string
	 * @author 李建
	 * @param p 待转码的string
	 * @param encode 转码格式
	 * @return 转码后的string
	 */
	public static String getEncodedString(String p, String encode) throws UnsupportedEncodingException{
		//判断当前字符串的编码格式
		if(!p.equals(new String(p.getBytes(encode), encode)))
		{
			return new String(p.trim().getBytes(), encode);
		}
		else
		{
			return p;
		}
	}
	
	/**
	 * 得到utf-8转码后的string
	 * @author 李建
	 * @param p 待转码的string
	 * @param encode 转码格式
	 * @return 转码后的string
	 */
	public static String getUTF8String(String p) throws UnsupportedEncodingException{
		//判断当前字符串的编码格式
		if(!p.equals(new String(p.getBytes("utf-8"), "utf-8")))
		{
			return new String(p.trim().getBytes(), "utf-8");
		}
		else
		{
			return p;
		}
	}
	
	/**
	 * 获得图片路径（例如可以获取新闻内容中图片的路径）
	 * 从HTML源码中提取图片路径，最后以一个 String 类型的 List 返回，如果不包含任何图片，则返回一个 size=0　的List
	 * 需要注意的是，此方法只会提取以下格式的图片：.jpg|.bmp|.eps|.gif|.mif|.miff|.png|.tif|.tiff|.svg|.wmf|.jpe|.jpeg|.dib|.ico|.tga|.cut|.pic
	 * @param htmlCode HTML源码
	 * @return <img>标签 src 属性指向的图片地址的List集合
	 * @author Administrator
	 */
	public static List<String> getImageSrc(String htmlCode) {
		// TODO Auto-generated method stub
		List<String> imageSrcList = new ArrayList<String>();
		Pattern p = Pattern.compile("<img\\b[^>]*\\bsrc\\b\\s*=\\s*('|\")?([^'\"\n\r\f>]+(\\.jpg|\\.bmp|\\.eps|\\.gif|\\.mif|\\.miff|\\.png|\\.tif|\\.tiff|\\.svg|\\.wmf|\\.jpe|\\.jpeg|\\.dib|\\.ico|\\.tga|\\.cut|\\.pic)\\b)[^>]*>", Pattern.CASE_INSENSITIVE);
		Matcher m = p.matcher(htmlCode);
		String quote = null;
		String src = null;
		while (m.find()) {
			quote = m.group(1);
			src = (quote == null || quote.trim().length() == 0) ? m.group(2).split("\\s+")[0] : m.group(2);
			imageSrcList.add(src);
		}
		return imageSrcList;
	}
	
	/**
	 * 根据手机号获得运营商代码
	 * @param mobile 手机号
	 * @return code 运营商代码
	 * @author Administrator
	 */
	public static String getOperatorCodeByMobile(String mobile){  
        String returnString="";  
        
//        if(mobile==null || mobile.trim().length()!=11){  
//            return returnString;        //mobile参数为空或者手机号码长度不为11，错误！  
//        }  
//        
//        if(mobile.trim().substring(0,3).equals("134") ||  mobile.trim().substring(0,3).equals("135") ||   
//                mobile.trim().substring(0,3).equals("136") || mobile.trim().substring(0,3).equals("137")    
//                || mobile.trim().substring(0,3).equals("138")  || mobile.trim().substring(0,3).equals("139") ||  mobile.trim().substring(0,3).equals("150") ||   
//                mobile.trim().substring(0,3).equals("151") || mobile.trim().substring(0,3).equals("152")    
//                || mobile.trim().substring(0,3).equals("157") || mobile.trim().substring(0,3).equals("158") || mobile.trim().substring(0,3).equals("159")   
//                 || mobile.trim().substring(0,3).equals("187") || mobile.trim().substring(0,3).equals("188")){  
//            returnString=ActionConfig.CHINA_MOBILE;   //中国移动  
//        }  
//        if(mobile.trim().substring(0,3).equals("130") ||  mobile.trim().substring(0,3).equals("131") ||   
//                mobile.trim().substring(0,3).equals("132") || mobile.trim().substring(0,3).equals("156")    
//                || mobile.trim().substring(0,3).equals("185")  || mobile.trim().substring(0,3).equals("186")){  
//            returnString=ActionConfig.CHINA_UNICOM;   //中国联通  
//        }  
//        if(mobile.trim().substring(0,3).equals("133") ||  mobile.trim().substring(0,3).equals("153") ||   
//                mobile.trim().substring(0,3).equals("180") || mobile.trim().substring(0,3).equals("189")){  
//            returnString=ActionConfig.CHINA_TELECOM;   //中国电信  
//        }  
//        if(returnString.trim().equals("")){  
//            returnString="0";   //未知运营商  
//        }  
        
        return returnString;  
    }  
	
	/**
	 * 读取配置文件公共方法 
	 * 
	 */
	public static String getProperties(String key){
		Properties prop = new Properties(); 
	    InputStream in = PublicUtil.class.getClassLoader().getResourceAsStream("system.properties");
	    try {
			prop.load(in);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    return prop.getProperty(key);
	    
	}
	
	// 简体中文的编码范围从B0A1（45217）一直到F7FE（63486）  
    private static int BEGIN = 45217;  
    private static int END = 63486;  
  
    // 按照声 母表示，这个表是在GB2312中的出现的第一个汉字，也就是说“啊”是代表首字母a的第一个汉字。  
    // i, u, v都不做声母, 自定规则跟随前面的字母  
    private static char[] chartable = { '啊', '芭', '擦', '搭', '蛾', '发', '噶', '哈', '哈', '击', '喀', '垃', '妈', '拿', '哦', '啪', '期', '然', '撒', '塌', '塌', '塌', '挖', '昔', '压', '匝', };  
  
    // 二十六个字母区间对应二十七个端点  
    // GB2312码汉字区间十进制表示  
    private static int[] table = new int[27];  
  
    // 对应首字母区间表  
    private static char[] initialtable = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 't', 't', 'w', 'x', 'y', 'z', };  
  
    // 初始化  
    static {  
        for (int i = 0; i < 26; i++) {  
            table[i] = gbValue(chartable[i]);// 得到GB2312码的首字母区间端点表，十进制。  
        }  
        table[26] = END;// 区间表结尾  
    }  
  
    // ------------------------public方法区------------------------  
    // 根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串 最重要的一个方法，思路如下：一个个字符读入、判断、输出  
  
    public static String cn2py(String SourceStr) {  
        String Result = "";  
        int StrLength = SourceStr.length();  
        int i;  
        try {  
            for (i = 0; i < StrLength; i++) {  
                Result += Char2Initial(SourceStr.charAt(i));  
            }  
        } catch (Exception e) {  
            Result = "";  
            e.printStackTrace();  
        }  
        return Result;  
    }  
    
    /**
     * 生成验证码
     * @param length: 验证码的长度
     * @param onlyDigit: 
     */
    public static String getKapcha(int length, boolean onlyDigit) { 
    	
    	char[] ch = "0123456789".toCharArray();
    	
    	//验证码是否只包含数字
    	if(!onlyDigit)
    	{
    		ArrayUtils.addAll(ch, "abcdefghjkmnpqrstuvwxyz".toCharArray());
    	}

		 //随即产生的字符串
		 int arrayLength = ch.length; // 随即字符串的长度
		 String kapcha = ""; // 保存随即产生的字符串
		 Random random = new Random();
		 for (int i = 0; i < length; i++) 
		 {
			 // 随即生成0-9的数字
			 String rand = new Character(ch[random.nextInt(arrayLength)]).toString();
			 kapcha += rand;
		 }
		 
		 return kapcha;
    } 
    // ------------------------private方法区------------------------  
    /** 
     * 输入字符,得到他的声母,英文字母返回对应的大写字母,其他非简体汉字返回 '0' 　　* 　　 
     */  
    private static char Char2Initial(char ch) {  
        // 对英文字母的处理：小写字母转换为大写，大写的直接返回  
        if (ch >= 'a' && ch <= 'z') {  
            return (char) (ch - 'a' + 'A');  
        }  
        if (ch >= 'A' && ch <= 'Z') {  
            return ch;  
        }  
        // 对非英文字母的处理：转化为首字母，然后判断是否在码表范围内，  
        // 若不是，则直接返回。  
        // 若是，则在码表内的进行判断。  
        int gb = gbValue(ch);// 汉字转换首字母  
        if ((gb < BEGIN) || (gb > END))// 在码表区间之前，直接返回  
        {  
            return ch;  
        }  
        int i;  
        for (i = 0; i < 26; i++) {// 判断匹配码表区间，匹配到就break,判断区间形如“[,)”  
            if ((gb >= table[i]) && (gb < table[i + 1])) {  
                break;  
            }  
        }  
        if (gb == END) {// 补上GB2312区间最右端  
            i = 25;  
        }  
        return initialtable[i]; // 在码表区间中，返回首字母  
    }  
  
    /** 
     * 取出汉字的编码 cn 汉字 　　 
     */  
    private static int gbValue(char ch) {// 将一个汉字（GB2312）转换为十进制表示。  
        String str = new String();  
        str += ch;  
        try {  
            byte[] bytes = str.getBytes("GB2312");  
            if (bytes.length < 2) {  
                return 0;  
            }  
            return (bytes[0] << 8 & 0xff00) + (bytes[1] & 0xff);  
        } catch (Exception e) {  
            return 0;  
        }  
    } 
	
	/*public static void main(String[] args) {*/
	
		//System.out.println(CommonAdapter.delStartString(",1,1,1,1", ","));
		//CommonAdapter.getDistanceTime("2010-10-20 11:11:11", "2010-10-20 11:11:17");
		//System.out.println(CommonAdapter.decimalFormat(100/96,"0"));
	/*	String[] areaCodes = CommonAdapter.getStrValue("","").split(",");
		String[] types =areaCodes;
		
		for (int i = 0; i < types.length; i++) {
			for (int j = 0; j < areaCodes.length; j++) {
				System.out.println(CommonAdapter.getStrValue(areaCodes[j], null)+"+++++++++++++"+CommonAdapter.getStrValue(types[i], null));
			}
		}*/
		//String partStr = CommonAdapter.subStr(10, "asdf阿斯顿飞大厦法定分地方", "...");
		//System.out.println(partStr);
//		String asf = "upload\\music\20150827\\20150827154659898.mp3";
//		asf = asf.substring(0,asf.indexOf("\\")) + asf.substring(asf.lastIndexOf("\\"),asf.length())+"\\";
//		System.out.println(asf);
		/*String s = "0531";
		System.out.println(s.split(",")[0]);
		
	}*/
	
	
	public static String dateformat(String date,String format){
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		String str = sdf.format(date) ;
		return str;
	}
	
	public static String replace(String str){
		String substr = str.substring(3, str.length()-4);
		String star="";
		for(int i=0; i<substr.length();i++){
			star +="*";
		}
		return str.replace(substr,star);
	}
	
	public static String date2Str(Date date){
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}
	
	
	public static String getSubstr(String str,int starIndex){
		String substr = str.substring(starIndex);
		
		return substr;
	}
	
	/**
	 * 
	* @Title: getOrderId
	* @Description: 生成订单号
	* @param @param customerId
	* @param @return    设定文件
	* @return String    返回类型
	* @throws
	 */
	 public static String getOrderId(String customerId){
		 	String substr = customerId.substring(customerId.length()-4);
			Random rand = new Random();
			Date date = new Date();
			String orderId = PublicUtil.date2formatStr(date, "yyyyMMddHHmmss", "") 
						   + substr
						   + String.valueOf(rand.nextInt(90)+10);
			return orderId;
	 }
	
	
	
}
